/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import Persistencia.PArchivo;
import java.util.Collections;
import java.util.Date;
import java.util.List;




/**
 *
 * @author JAVA
 */
public abstract class Archivo implements Comparable {
    private int id;
    private Usuario usuario;
    private Date fecha;
    private Date hora;
    private String titulo;
    private String rutaArchivo;
    private List<Comentario> listaComentarios;
    
    

    public Archivo(Usuario usuario, Date fecha, String titulo, String rutaArchivo) {
        this.usuario = usuario;
        this.fecha = fecha;
        this.titulo = titulo;
        this.rutaArchivo = rutaArchivo;
    }

    public Archivo(int id, Usuario usuario, Date fecha, Date hora, String titulo, String rutaArchivo) {
        this.id = id;
        this.usuario = usuario;
        this.fecha = fecha;
        this.hora = hora;
        this.titulo = titulo;
        this.rutaArchivo = rutaArchivo;
    }

   

    public Archivo(int id, Usuario usuario, Date fecha, String titulo, String rutaArchivo, List<Comentario> listaComentarios) {
        this.id = id;
        this.usuario = usuario;
        this.fecha = fecha;
        this.titulo = titulo;
        this.rutaArchivo = rutaArchivo;
        this.listaComentarios = listaComentarios;
    }

    public Archivo() {
    }
    
    public String getRutaArchivo() {
        return rutaArchivo;
    }

    public void setRutaArchivo(String rutaArchivo) {
        this.rutaArchivo = rutaArchivo;
    }    

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public List<Comentario> getListaComentarios() {
        return listaComentarios;
    }

    public void setListaComentarios(List<Comentario> listaComentarios) {
        this.listaComentarios = listaComentarios;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Date getHora() {
        return hora;
    }

    public void setHora(Date hora) {
        this.hora = hora;
    }
    
    
    
    
    public abstract void crearArchivo();
    public abstract void actualizarArchivo();
    public abstract void eliminarArchivo();
    public abstract List<Archivo> mostrarArchivo(Usuario usuario,Archivo archivo);
    public abstract Archivo seleccionarArchivo(int id);
    public abstract List<Archivo> mostrar6Archivos(Usuario usuario, Archivo archivo);
    public static List<Archivo> mostrarArchivoAmigos(Usuario usuario){
         return PArchivo.mostrarArchivoAmigosBD(usuario);
    }
         
   
                
            
        
            
    
}
